package com.ruoyi.system.mapper.sz;

import com.ruoyi.system.domain.sz.*;

import java.util.List;


/**
 * 个人信息Mapper接口
 * 
 * @author ruoyi
 * @date 2024-03-14
 */
public interface SzPersonalMapper 
{
    /**
     * 查询个人信息
     * 
     * @param personalId 个人信息主键
     * @return 个人信息
     */
    public SzPersonal selectSzPersonalByPersonalId(Long personalId);

    /**
     * 查询个人信息列表
     * 
     * @param szPersonal 个人信息
     * @return 个人信息集合
     */
    public List<SzPersonal> selectSzPersonalList(SzPersonal szPersonal);

    /**
     * 查询个人信息列表
     *
     * @param szPersonal 个人信息
     * @return 个人信息集合
     */
    List<SzPersonal> selectSzPersonalListBySearchValue(SzPersonal szPersonal);

    /**
     * 新增个人信息
     * 
     * @param szPersonal 个人信息
     * @return 结果
     */
    public int insertSzPersonal(SzPersonal szPersonal);

    /**
     * 修改个人信息
     * 
     * @param szPersonal 个人信息
     * @return 结果
     */
    public int updateSzPersonal(SzPersonal szPersonal);

    /**
     * 删除个人信息
     * 
     * @param personalId 个人信息主键
     * @return 结果
     */
    public int deleteSzPersonalByPersonalId(Long personalId);

    /**
     * 批量删除个人信息
     * 
     * @param personalIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSzPersonalByPersonalIds(Long[] personalIds);

    /**
     * 批量删除个人信息-岗前备案对象
     * 
     * @param personalIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSzPersonalRecordByPersonalIds(Long[] personalIds);

    /**
     * 批量删除个人信息-教育经历对象
     *
     * @param personalIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSzPersonalEducationByPersonalIds(Long[] personalIds);


    /**
     * 批量删除个人信息-工作经历
     *
     * @param personalIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSzPersonalWorkByPersonalIds(Long[] personalIds);

    /**
     * 批量删除个人信息-家庭成员对象
     *
     * @param personalIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSzPersonalFamilyByPersonalIds(Long[] personalIds);

    /**
     * 批量删除个人信息-附件对象
     *
     * @param personalIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSzPersonalFileByPersonalIds(Long[] personalIds);
    
    /**
     * 批量新增个人信息-工作经历
     * 
     * @param szPersonalWorkList 个人信息-工作经历列表
     * @return 结果
     */
    public int batchSzPersonalWork(List<SzPersonalWork> szPersonalWorkList);

    /**
     * 批量新增个人信息-教育经历对象
     *
     * @param szPersonalEducationList 个人信息-教育经历对象
     * @return 结果
     */
    public int batchSzPersonalEducation(List<SzPersonalEducation> szPersonalEducationList);

    /**
     * 批量新增个人信息-岗前备案对象
     *
     * @param szPersonalRecordList 个人信息-岗前备案对象
     * @return 结果
     */
    public int batchSzPersonalRecord(List<SzPersonalRecord> szPersonalRecordList);

    /**
     * 批量新增个人信息-家庭成员对象
     *
     * @param szPersonalFamilyList 个人信息-家庭成员对象
     * @return 结果
     */
    public int batchSzPersonalFamily(List<SzPersonalFamily> szPersonalFamilyList);

    /**
     * 批量新增个人信息-附件对象
     *
     * @param szPersonalFileList 个人信息-附件对象
     * @return 结果
     */
    public int batchSzPersonalFile(List<SzPersonalFile> szPersonalFileList);


    /**
     * 批量更新政审状态
     * @param szPersonalList
     * @return
     */
    int batchUpdatePersonal(List<SzPersonal> szPersonalList);
    

    /**
     * 通过个人信息主键删除个人信息-工作经历信息
     * 
     * @param personalId 个人信息ID
     * @return 结果
     */
    public int deleteSzPersonalWorkByPersonalId(Long personalId);

    /**
     * 通过个人信息主键删除个人信息-家庭成员对象
     *
     * @param personalId 个人信息ID
     * @return 结果
     */
    public int deleteSzPersonalEducationByPersonalId(Long personalId);

    /**
     * 通过个人信息主键删除个人信息-岗前备案对象
     *
     * @param personalId 个人信息ID
     * @return 结果
     */
    public int deleteSzPersonalRecordByPersonalId(Long personalId);
    /**
     * 通过个人信息主键删除个人信息-岗前备案对象
     *
     * @param personalId 个人信息ID
     * @return 结果
     */
    int deleteSzPersonalFileByPersonalIdsAndType(Long[] personalId);

    /**
     * 通过个人信息主键删除个人信息-岗前备案对象
     *
     * @param personalId 个人信息ID
     * @return 结果
     */
    int deleteSzPersonalFileByPersonalIdAndType(Long personalId);

    /**
     * 通过个人信息主键删除个人信息-附件
     *
     * @param personalId 个人信息ID
     * @return 结果
     */
    public int deleteSzPersonalFileByPersonalId(Long personalId);

    /**
     * 通过个人信息主键删除个人信息-教育经历对象
     *
     * @param personalId 个人信息ID
     * @return 结果
     */
    public int deleteSzPersonalFamilyByPersonalId(Long personalId);

    /**
     * 更新头像
     * @param szPersonal
     * @return
     */
    int updatePersonalAvatar(SzPersonal szPersonal);
}
